Skip to content

Commit 9b5f85c

Browse files
authored
Import of v0.31.0 (#2003)
1 parent a69d99e commit 9b5f85c

24 files changed

+2324
-543
lines changed

CHANGES.md

Lines changed: 107 additions & 121 deletions
Large diffs are not rendered by default.

Cargo.lock

Lines changed: 1462 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,38 @@
11
[package]
22
name = "geckodriver"
3-
version = "0.30.0"
3+
version = "0.31.0"
44
description = "Proxy for using WebDriver clients to interact with Gecko-based browsers."
55
keywords = ["webdriver", "w3c", "httpd", "mozilla", "firefox"]
66
repository = "https://hg.mozilla.org/mozilla-central/file/tip/testing/geckodriver"
77
readme = "README.md"
88
license = "MPL-2.0"
9-
publish = false
9+
authors = ["Mozilla"]
1010
edition = "2018"
1111

1212
[dependencies]
1313
base64 = "0.12"
1414
chrono = "0.4.6"
15-
clap = { version = "^2.19", default-features = false, features = ["suggestions", "wrap_help"] }
15+
clap = { version = "3", default-features = false, features = ["cargo", "std", "suggestions", "wrap_help"] }
1616
hyper = "0.13"
1717
lazy_static = "1.0"
1818
log = { version = "0.4", features = ["std"] }
19-
marionette = { path = "./marionette" }
20-
mozdevice = "0.4.0"
21-
mozprofile = "0.7.3"
22-
mozrunner = "0.13.0"
23-
mozversion = "0.4.2"
19+
marionette = "0.2.0"
20+
mozdevice = "0.5.0"
21+
mozprofile = "0.8.0"
22+
mozrunner = "0.14.0"
23+
mozversion = "0.4.3"
2424
regex = { version="1.0", default-features = false, features = ["perf", "std"] }
2525
serde = "1.0"
2626
serde_derive = "1.0"
2727
serde_json = "1.0"
2828
serde_yaml = "0.8"
29+
url = "2.0"
2930
uuid = { version = "0.8", features = ["v4"] }
30-
webdriver = "0.44.0"
31+
webdriver = "0.45.0"
3132
zip = { version = "0.4", default-features = false, features = ["deflate"] }
3233

34+
[dev-dependencies]
35+
tempfile = "3"
36+
3337
[[bin]]
3438
name = "geckodriver"

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ Downloads
2020
* [Releases](https://github.com/mozilla/geckodriver/releases/latest)
2121
* [Change log](https://searchfox.org/mozilla-central/source/testing/geckodriver/CHANGES.md)
2222

23-
2423
Documentation
2524
-------------
2625

@@ -65,6 +64,15 @@ This GitHub repository is only used for issue tracking and making releases.
6564
[Mozilla Public License]: https://www.mozilla.org/en-US/MPL/2.0/
6665
[mozilla-central]: https://hg.mozilla.org/mozilla-central/file/tip/testing/geckodriver
6766

67+
Custom release builds
68+
---------------------
69+
70+
If a binary is not available for your platform, it's possibe to create a custom
71+
build using the [Rust] toolchain. To do this, checkout the release tag for the
72+
version of interest and run `cargo build`. Alternatively the latest version may
73+
be built and installed from `crates.io` using `cargo install geckodriver`.
74+
75+
[Rust]: https://rustup.rs/
6876

6977
Contact
7078
-------

doc/Bugs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ is appropriate. Bugs specific to geckodriver will be filed in the
4040
[`Testing :: geckodriver`] component in Bugzilla.
4141

4242
[mailing list]: ./#communication
43-
[trace-level log]: TraceLogs.html
43+
[trace-level log]: TraceLogs.md
4444
[GitHub issue tracker]: https://github.com/mozilla/geckodriver/issues
4545
[ISSUE_TEMPLATE.md]: https://raw.githubusercontent.com/mozilla/geckodriver/master/ISSUE_TEMPLATE.md
4646
[`Testing :: geckodriver`]: https://bugzilla.mozilla.org/buglist.cgi?component=geckodriver

doc/Building.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ You can run your freshly built geckodriver this way:
2929

3030
% ./mach geckodriver -- --other --flags
3131

32-
See [Testing](Testing.html) for how to run tests.
32+
See [Testing](Testing.md) for how to run tests.
3333

3434
[Rust]: https://www.rust-lang.org/
3535
[webdriver crate]: https://crates.io/crates/webdriver
3636
[commands]: https://docs.rs/webdriver/newest/webdriver/command/
3737
[responses]: https://docs.rs/webdriver/newest/webdriver/response/
3838
[errors]: https://docs.rs/webdriver/newest/webdriver/error/enum.ErrorStatus.html
39-
[Marionette protocol]: /testing/marionette/doc/marionette/Protocol.html
39+
[Marionette protocol]: /testing/marionette/Protocol.md
4040
[WebDriver]: https://w3c.github.io/webdriver/
41-
[Marionette]: /testing/marionette/doc/marionette
41+
[Marionette]: /testing/marionette/index.rst

doc/Capabilities.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ A list of all available websocket targets:
5050
The contained `webSocketDebuggerUrl` entries can be used to connect to the
5151
websocket and interact with the browser by using the CDP protocol.
5252

53-
[Remote Protocol]: /testing/remote/doc/
53+
[Remote Protocol]: /remote/index.rst
5454
[Chrome DevTools Protocol]: https://chromedevtools.github.io/devtools-protocol/
5555

5656

doc/Flags.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,32 @@
11
Flags
22
=====
33

4+
#### <code>--allow-hosts <var>ALLOW_HOSTS</var>...</code>
5+
6+
Values of the `Host` header to allow for incoming requests.
7+
8+
By default the value of <var>HOST</var> is allowed. If `--allow-hosts`
9+
is provided, exactly the given values will be permitted. For example
10+
`--allow-host geckodriver.test webdriver.local` will allow requests
11+
with `Host` set to `geckodriver.test` or `webdriver.local`.
12+
13+
Requests with `Host` set to an IP address are always allowed.
14+
15+
#### <code>--allow-origins <var>ALLOW_ORIGINS</var>...</code>
16+
17+
Values of the `Origin` header to allow for incoming requests.
18+
19+
`Origin` is set by web browsers for all `POST` requests, and most
20+
other cross-origin requests. By default any request with an `Origin`
21+
header is rejected to protect against malicious websites trying to
22+
access geckodriver running on the local machine.
23+
24+
If `--allow-origins` is provided, web services running on the given
25+
origin will be able to make requests to geckodriver. For example
26+
`--allow-origins https://webdriver.test:8080` will allow a web-based
27+
service on the origin with scheme `https`, hostname `webdriver.test`,
28+
and port `8080` to access the geckodriver instance.
29+
430
#### <code>&#x2D;&#x2D;android-storage <var>ANDROID_STORAGE</var></code>
531

632
**Deprecation warning**: This argument is deprecated and planned to be removed
@@ -133,7 +159,6 @@ Port to use for the WebDriver server. Defaults to 4444.
133159
A helpful trick is that it is possible to bind to 0 to get the
134160
system to atomically assign a free port.
135161

136-
137162
#### <code>&#x2D;&#x2D;jsdebugger</code>
138163

139164
Attach [browser toolbox] debugger when Firefox starts. This is
@@ -174,3 +199,5 @@ argument is passed to geckodriver.
174199
Increases the logging verbosity by to debug level when passing
175200
a single `-v`, or to trace level if `-vv` is passed. This is
176201
analogous to passing `--log debug` and `--log trace`, respectively.
202+
203+
[Marionette]: /testing/marionette/index.rst

doc/Profiles.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ two distinct systems.
3232

3333
[profiles]: https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data
3434
[_Automation preferences_]: #automation-preferences
35-
[`args` capability]: ./Capabilities.html#capability-args
36-
[`profile` capability]: ./Capabilities.html#capability-profile
35+
[`args` capability]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/firefoxOptions#args_array_of_strings
36+
[`profile` capability]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/firefoxOptions#profile_string
3737
[known bug concerning `--profile`]: https://github.com/mozilla/geckodriver/issues/1058
3838

3939

@@ -96,7 +96,7 @@ the `--marionette-port <port>` flag is used specifically to instruct
9696
the Marionette server in Firefox which port to use.
9797

9898
[user.js file]: http://kb.mozillazine.org/User.js_file
99-
[`prefs` capability]: ./Capabilities.html#capability-prefs
99+
[`prefs` capability]: https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/firefoxOptions#prefs_preferences_object
100100

101101

102102
Temporary profiles not being removed

doc/Support.md

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
Supported platforms
2-
===================
1+
<!-- markdownlint-disable MD033 -->
2+
# Supported platforms
33

44
The following table shows a mapping between [geckodriver releases],
55
and required versions of Selenium and Firefox:
@@ -22,41 +22,47 @@ and required versions of Selenium and Firefox:
2222
<th>max
2323
</tr>
2424
</thead>
25+
<tr>
26+
<td>0.31.0
27+
<td>≥ 3.11 (3.14 Python)
28+
<td>91 ESR
29+
<td>n/a
30+
<tr>
2531
<tr>
2632
<td>0.30.0
2733
<td>≥ 3.11 (3.14 Python)
2834
<td>78 ESR
29-
<td>n/a
35+
<td>90
3036
<tr>
3137
<td>0.29.1
3238
<td>≥ 3.11 (3.14 Python)
3339
<td>60
34-
<td>n/a
40+
<td>90
3541
<tr>
3642
<td>0.29.0
3743
<td>≥ 3.11 (3.14 Python)
3844
<td>60
39-
<td>n/a
45+
<td>90
4046
<tr>
4147
<td>0.28.0
4248
<td>≥ 3.11 (3.14 Python)
4349
<td>60
44-
<td>n/a
50+
<td>90
4551
<tr>
4652
<td>0.27.0
4753
<td>≥ 3.11 (3.14 Python)
4854
<td>60
49-
<td>n/a
55+
<td>90
5056
<tr>
5157
<td>0.26.0
5258
<td>≥ 3.11 (3.14 Python)
5359
<td>60
54-
<td>n/a
60+
<td>90
5561
<tr>
5662
<td>0.25.0
5763
<td>≥ 3.11 (3.14 Python)
5864
<td>57
59-
<td>n/a
65+
<td>90
6066
<tr>
6167
<td>0.24.0
6268
<td>≥ 3.11 (3.14 Python)
@@ -109,15 +115,13 @@ and required versions of Selenium and Firefox:
109115
<td>62
110116
</table>
111117

112-
Clients
113-
-------
118+
## Clients
114119

115120
[Selenium] users must update to version 3.11 or later to use geckodriver.
116121
Other clients that follow the [W3C WebDriver specification][WebDriver]
117122
are also supported.
118123

119-
Firefoxen
120-
---------
124+
## Firefoxen
121125

122126
geckodriver is not yet feature complete. This means that it does
123127
not yet offer full conformance with the [WebDriver] standard
@@ -133,8 +137,7 @@ in the most recent Firefox versions, and we strongly advise using the
133137
latest [Firefox Nightly] with geckodriver. Since Windows XP support
134138
in Firefox was dropped with Firefox 53, we do not support this platform.
135139

136-
Android
137-
-------
140+
## Android
138141

139142
Starting with the 0.26.0 release geckodriver is able to connect
140143
to Android devices, and to control packages which are based on [GeckoView]

doc/Testing.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,5 @@ flag to geckodriver through WPT:
5555
[cargo]: http://doc.crates.io/guide.html
5656
[headless mode]: https://developer.mozilla.org/en-US/Firefox/Headless_mode
5757
[mozconfig]: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options
58-
[trace-level logs]: TraceLogs.html
59-
[Marionette protocol]: https://firefox-source-docs.mozilla.org/testing/marionette/Protocol.html
58+
[trace-level logs]: TraceLogs.md
59+
[Marionette protocol]: /testing/marionette/Protocol.md

doc/TraceLogs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ documentation to cover all the best known clients people use with
102102
geckodriver. If you find your language missing, please consider
103103
[submitting a patch].
104104

105-
[submitting a patch]: ../CONTRIBUTING.md
105+
[submitting a patch]: Patches.md
106106

107107

108108
C#

0 commit comments

Comments
 (0)